export default function() {
  this.route('admin', { resetNamespace: true }, function() {
    this.route('dashboard', { path: '/' });
    this.route('adminSiteSettings', { path: '/site_settings', resetNamespace: true }, function() {
      this.route('adminSiteSettingsCategory', { path: 'category/:category_id', resetNamespace: true} );
    });

    this.route('adminEmail', { path: '/email', resetNamespace: true}, function() {
      this.route('sent');
      this.route('skipped');
      this.route('bounced');
      this.route('received');
      this.route('rejected');
      this.route('previewDigest', { path: '/preview-digest' });
    });

    this.route('adminCustomize', { path: '/customize', resetNamespace: true } ,function() {
      this.route('colors');

      this.route('adminCustomizeCssHtml', { path: 'css_html', resetNamespace: true }, function() {
        this.route('show', {path: '/:site_customization_id/:section'});
      });

      this.route('adminSiteText', { path: '/site_texts', resetNamespace: true }, function() {
        this.route('edit', { path: '/:id' });
      });

      this.route('adminUserFields', { path: '/user_fields', resetNamespace: true });
      this.route('adminEmojis', { path: '/emojis', resetNamespace: true });
      this.route('adminPermalinks', { path: '/permalinks', resetNamespace: true });
      this.route('adminEmbedding', { path: '/embedding', resetNamespace: true });
      this.route('adminCustomizeEmailTemplates', { path: '/email_templates', resetNamespace: true }, function() {
        this.route('edit', { path: '/:id' });
      });
    });

    this.route('adminApi', { path: '/api', resetNamespace: true }, function() {
      this.route('adminApiKeys', { path: '/keys', resetNamespace: true });

      this.route('adminWebHooks', { path: '/web_hooks', resetNamespace: true }, function() {
        this.route('show', { path: '/:web_hook_id' });
        this.route('showEvents', { path: '/:web_hook_id/events' });
      });
    });

    this.route('admin.backups', { path: '/backups', resetNamespace: true }, function() {
      this.route('logs');
    });

    this.route('adminReports', { path: '/reports/:type', resetNamespace: true });

    this.route('adminFlags', { path: '/flags', resetNamespace: true }, function() {
      this.route('list', { path: '/:filter' });
    });

    this.route('adminLogs', { path: '/logs', resetNamespace: true }, function() {
      this.route('staffActionLogs', { path: '/staff_action_logs' });
      this.route('screenedEmails', { path: '/screened_emails' });
      this.route('screenedIpAddresses', { path: '/screened_ip_addresses' });
      this.route('screenedUrls', { path: '/screened_urls' });
    });

    this.route('adminGroups', { path: '/groups', resetNamespace: true }, function() {
      this.route('bulk');
      this.route('bulkComplete', { path: 'bulk-complete' });
      this.route('adminGroupsType', { path: '/:type', resetNamespace: true }, function() {
        this.route('adminGroup', { path: '/:name', resetNamespace: true });
      });
    });

    this.route('adminUsers', { path: '/users', resetNamespace: true }, function() {
      this.route('adminUser', { path: '/:user_id/:username', resetNamespace: true }, function() {
        this.route('badges');
        this.route('tl3Requirements', { path: '/tl3_requirements' });
      });

      this.route('adminUsersList', { path: '/list', resetNamespace: true }, function() {
        this.route('show', { path: '/:filter' });
      });
    });

    this.route('adminBadges', { path: '/badges', resetNamespace: true }, function() {
      this.route('show', { path: '/:badge_id' });
    });

    this.route('adminPlugins', { path: '/plugins', resetNamespace: true }, function() {
      this.route('index', { path: '/' });
    });
  });
};
